Methods and structure for state preservation to improve fairness in bus arbitration

ABSTRACT

Methods and structure for enhanced bus arbitration providing a hybrid arbitration technique combining priority-based arbitration with round-robin arbitration within a priority level with improved fairness for all devices participating the a round-robin arbitration at a particular priority level. In particular, the invention provides a state retention technique and structure such that the present state of round-robin arbitration at each priority level is saved and restored when a higher priority master device interrupts the round-robin arbitration at a lower level. The restoration of saved state information allows the round-robin arbitration at a lower priority to resume at the saved state to thereby improve fairness of arbitration among devices at a given priority level.

RELATED PATENTS

This patent is related to co-pending, commonly owned U.S. patentapplication Ser. No. 10/162,960, filed (concurrently herewith), entitledMETHODS AND STRUCTURE FOR IMPROVED FAIRNESS BUS ARBITRATION and isrelated to co-pending, commonly owned U.S. patent application Ser. No.10/164,332, filed (concurrently herewith), entitled METHODS ANDSTRUCTURE FOR DYNAMIC MODIFICATIONS TO ARBITRATION FOR A SHAREDRESOURCE, both of which are hereby incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present inventions relates to bus arbitration and in particular to abus arbitration method and structure for improving fairness inpriority-based allocation of a shared bus among multiple requestingmaster devices.

2. Discussion of Related Art

It is generally known in electronic systems to have multiple devicescommunicating over a shared electronic bus. In general, a first device(usually referred to as a master device) initiates an exchange ofinformation with a second device (usually referred to as a slavedevice). It is also generally known in the art that a bus structure maypermit multiple master devices and multiple slave devices to exchangeinformation. Generally, one master device communicates with one or moreslave devices to the exclusion of other master and slave devices in thesystem. In such a circumstance, a first master device desiring use ofthe bus for communication with a slave device must first obtaintemporary exclusive control over the shared bus structure. A masterdevice obtains temporary exclusive control of the shared bus byrequesting the bus structure and awaiting an acknowledgment signalindicative of granting of the requested temporary exclusive access tothe shared bus.

Typically, an arbiter device coupled to the shared bus structurereceives a request for temporary exclusive control of the bus from eachof several master devices and selects the next master device to obtainthe requested temporary exclusive control. The arbiter receives requestsignals and returns grant (acknowledgment) signals to master devices toindicate request and granting of temporary exclusive control,respectively. This process is typically referred to as the busarbitration. A number of well-known commercially applied bus structuressupport such multiple master devices sharing control of a bus. Thoughthe specific timing and signals involved in arbitration may vary, allsuch buses support arbitration in some form.

It is common in the art for an arbiter device to utilize any of severalwell-known techniques for determining the next requesting master deviceto be granted temporary exclusive control of the shared bus structure.One simple technique is often referred to as “round-robin” in that eachdevice may be granted temporary exclusive control of the shared bus insequential order defined by an index number—usually a master device ID.When the last master device ID is granted temporary exclusive controlover the bus, the first master device is again eligible for exclusivebus control. This sequential “round-robin” technique assures that eachmaster device has a roughly equal opportunity to obtain temporaryexclusive control of the shared bus structure.

Another common bus arbitration technique is to assign a priority to eachmaster device. At any given point, a master device with the highestpriority requesting temporary exclusive control of the shared bus willbe granted control over the bus. Still other techniques combine featuresof both a priority-based scheme and round-robin arbitration techniques.For example, each master device may be assigned a priority and allmaster devices having the same particular priority level share the bususing a round-robin technique.

Strict round-robins arbitration generally provides equal access to theshared bus for all master devices. Standard priority-based busarbitration algorithms are effective at assuring that the highestpriority master devices can rapidly access the shared bus as compared tolower priority devices. However a problem with priority-based scheme isthat the lowest priority devices may be effectively “starved” fromaccess to the bus due to high frequency bus requests by higher prioritymaster devices. By contrast, round-robin arbitration techniques precludehigh priority master devices from obtaining necessary frequent access toa shared bus.

Hybrid techniques, as noted above, that combine features of bothround-robin arbitration and priority-based arbitration still produceunfair results in some circumstances. For example, presume a pluralityof master devices are requesting the bus all at the same first prioritylevel (i.e., applying round-robin techniques within that prioritylevel). A higher priority master device then requests and is granted thebus (since it is a higher priority than the plurality of devices at thefirst priority level). When the higher priority device relinquishes thebus, the plurality of devices at the first priority level againarbitrate using round-robin techniques. However, present techniquesrestart the round-robin selection process in the arbitration. Thusround-robin arbitration within a priority level is not assured to fairlyallocate the bus to all devices within that priority level whenarbitration is interrupted by a higher priority master device request.

It is evident from the above discussion that a need exists for improvedarbitration techniques that provide additional fairness to lowerpriority master devices while granting frequent access to high prioritymaster devices.

SUMMARY OF THE INVENTION

The present invention solves the above and other problems, therebyadvancing the state of the useful arts, by providing a hybridarbitration technique combining priority-based techniques among alldevices with round-robin techniques including state information within apriority level to improve fairness for periodic allocation of the sharedbus to master devices. More specifically, the present invention retainsstate information regarding round-robin arbitration within a prioritylevel when a higher priority master device interrupts the round-robintechnique. When the higher priority master device relinquishes the bus,methods and structure of the present invention uses the saved stateinformation in resuming the round-robin arbitration at the lowerpriority level.

A first feature of the invention therefore provides a method in a systemhaving multiple master devices coupled to a shared bus, the busarbitration method comprising the steps of: saving state informationregarding round-robin arbitration among master devices all having afirst priority level; interrupting round-robin arbitration when a masterdevice having a higher priority level requests the shared bus; andresuming round-robin arbitration among the master devices at the firstpriority level using the state information.

Another aspect of the invention further provides that the step of savingcomprises the step of: registering a nearest master device IDcorresponding to the next master device requesting the shared bus at thefirst priority level.

Another aspect of the invention further provides that the step ofresuming comprises the step of: granting the shared bus to the nextmaster device identified by the nearest master device ID.

Another aspect of the invention further provides that the step of savingcomprises the step of: saving an index indicative of the next masterdevice requesting the shared bus at the first priority level.

Another aspect of the invention further provides that the step ofresuming comprises the step of: granting the shared bus to the nextmaster device identified by the nearest master device ID.

A second feature of the invention provides a bus arbitration circuitcomprising: a plurality of round-robin arbitration selection elementsfor selecting a next requesting master device among a plurality ofmaster devices coupled to each round-robin arbitration selection elementsuch that each round-robin arbitration selection element includes: astate memory indicating the last master device selected by the selectionelement; and a nearest function element coupled to the state memory fordetermining the next requesting master device as a function of the lastmaster device; and a priority arbitration selection element coupled tothe plurality of round-robin arbitration selection elements forselecting the highest priority master device among the selectedrequesting master devices selected by each of the plurality ofround-robin arbitration selection elements.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a typical system employing the enhancedarbitration features of the present invention.

FIG. 2 is a flowchart describing an exemplary method of the presentinvention to improve fairness in priority-based bus arbitration.

FIG. 3 is a timing diagram showing exemplary, approximate timings for anexemplary preferred embodiment of the improved fairness arbiter of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

While the invention is susceptible to various modifications andalternative forms, a specific embodiment thereof has been shown by wayof example in the drawings and will herein be described in detail. Itshould be understood, however, that it is not intended to limit theinvention to the particular form disclosed, but on the contrary, theinvention is to cover all modifications, equivalents, and alternativesfalling within the spirit and scope of the invention as defined by theappended claims.

FIG. 1 is a block diagram of a system 100 having multiple master devices104 through 110 and multiple slave devices 112 through 116 coupled to ashared system bus 152. Arbiter 102 includes fairness improvement element103 in accordance with the present invention to improve fairness ofgranting of temporary exclusive ownership of the common share bus 152 toany of multiple masters 104 through 110.

Request and grant signals associated with each master device 104 through110 are exchanged with arbiter 102 via bus 150. In general, each masterdevice 104 through 110 requests temporary exclusive control of bus 152by applying a bus request signal to its associated signal path of bus150. The arbiter 102 receives all such bus request signals from allmaster devices 104 through 110 and selects the next master devicepresently requesting temporary exclusive ownership of bus 152 to whichthe requested ownership will be granted. A grant signal is applied to anassociated signal path of bus 150 to grant the request of the nextselected master device.

As noted above, any of several well-known arbitration techniques may beused within arbiter 102 including, for example, round-robin arbitrationwhereby each master device 104 through 110 receives essentially equalopportunity for allocation of temporary exclusive ownership of bus 152.In addition, where particular master devices perform more criticaloperations, priority-based arbitration schemes are common within arbiter102. In a priority-based arbitration architecture, each master devicesis associated with a particular priority level. When multiple masterdevices simultaneously request temporary ownership of bus 152, arbiter102 selects the highest priority such requesting master device toreceive the requested temporary exclusive ownership of bus 152. At anygiven priority level, multiple master devices having the same prioritylevel may be granted temporary exclusive ownership by application of around-robin arbitration schemes within the priority level.

As noted above, in such hybrid arbitration architecture, lower prioritymaster devices may be unfairly (inequitably) granted temporary exclusiveownership of the shared bus relative to other devices at the samepriority level. Specifically, when round-robin arbitration at a lowerpriority level resumes after interruption by a higher priority device,starting over in the round-robin sequence can result in unfairallocation of the shared bus among the master devices at the lowerpriority level.

Fairness improvement element 103 within arbiter 102 provides improvedfairness in bus arbitration when used in conjunction with priority-basedarbitration architectures. In general, as noted above, fairnessimprovement element 103 ensures that all master devices at the samepriority level will receive fair allocation to the shared bus in around-robin fashion regardless of interruption of the round-robinsequence by a higher priority master device.

More specifically, fairness improvement element 103 preferably savesstate information regarding the round-robin arbitration process withineach priority level. When the round-robin sequence is interrupted by ahigher priority master device, the state information is used to resumethe round-robin sequence at the lower priority to thereby ensure fairaccess to the shared bus for all master devices within a priority level.

Those skilled in the art will recognize that the architecture depictedin FIG. 1 is intended as exemplary of a wide variety of busarchitectures that may benefit from the improved fairness techniques andstructure of the present invention. In particular, those skilled in theart will recognize that any number of master devices may be used inconjunction with such a system structure limited only by thespecifications of the particular system bus selected by the designer.Further, any number of slave devices, limited only by the requirementsand specifications of the selected system bus, may be present in such asystem 100.

Still further, those of ordinary skill in the art will recognize thatany of several well-known system bus architectures may be selected for asystem bus 152 and arbitration signals on bus 150. In particular, in oneexemplary preferred embodiment, bus 150 and 152 together may be an AMBAAHB compliant high-performance system bus architecture. A number ofother common, commercial bus structures as well as customizedproprietary bus structures may also benefit from the features of thepresent inventions. Those skilled in the art will further recognize thatsignals applied to bus 150 and system bus 152 are typically integratedin a single bus structure rather than two distinct bus structures asdepicted in FIG. 1. Signals applied to bus 150 are shown in FIG. 1 asseparate from system bus 152 only to simplify the description in thatsignals applied to bus 150 relate exclusively to bus arbitrationprocessing to exchange signals between master devices 104 through 110and arbiter 102.

FIG. 2 is a collection of flowcharts describing operation of an arbiterin accordance with the fairness improvements of the present convention.Elements 200 and 202 represent processing by the priority arbitrationcomponent of the arbiter. Elements 210 through 214 and 220 through 220represent processing of a round-robin selection element of the arbiterin accordance with the present convention. As noted generally here inabove, the priority selection element of the arbiter preferably selectsamong the outputs of a plurality of round-robin selection elements. Ateach priority level, a round-robin selection element preferablydetermines the next master device ID requesting the shared resource atthat corresponding priority level. The priority arbitration selectionelement then selects among the various round-robin selection elementsgenerating corresponding requests for master devices at each prioritylevel. Those skilled in the art will recognize that priority arbitrationmay be performed first followed by round-robin arbitration selection orother combinations of selection criteria. Such design choices arewell-known to those of ordinary skill in the art.

Element 200 is operable to grant the request for the shared resourcefrom the highest priority round robin selection element presentlyrequesting access to the shared resource. A new request is granted onlyif a higher priority master device through an associated round-robinarbitration selection element generates the request. Until such a newhigher priority request is received, the present owner of the sharedresource continues exclusive access to resource. If no master devicesare presently accessing the shared resource, the resource remains idle.When element 202 grants a new request from one of the plurality ofround-robin arbitration selection elements, element 202 is next operableto signal the round-robin arbitration selection elements interruptingtheir respective round-robin selection to indicate that a newtransaction has been granted. Processing then continues by looping backto element 200 to await granting of yet another high-priority requestfor the shared resource. The dashed line connecting element 202 andelement 210 indicates the interruption of normal processing by theround-robin selection elements.

Determining the relative measure of priority levels may be accomplishedby simple arithmetic comparison of level number expressed as a range ofnumeric values. In the alternative, the priority levels may be encodedin a tabular format such that a resultant “highest” priority level isdetermined by table lookup. The table below describes an exemplarytabular encoding of priority levels to select a “highest” priority fromthe table of levels presently asserting that a master device at thatlevel requests access to the shared resource. The table presents anexemplary encoding where two levels are defined (preferablycorresponding to two round-robin selection elements—one at each of theidentified levels.

Level 2 Level 1 Request Request Level 2 Level 1 Present Present SelectedSelected 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0

Those of ordinary skill in the art will readily recognize that such atable may be easily adapted to any number of Priority levels. Two levelsas presented is merely intended as representative of one exemplaryembodiment of the invention. Further, those skilled in the art willrecognize that such a table may be stored in a memory associated withthe priority selection element of an arbiter in accordance with thepresent invention.

Elements 220 through 222 represent standard processing within eachround-robin selection element to select a next (nearest) master ID atthe corresponding priority level. Those of ordinary skill in the artwill recognize that the process is preferably operable in parallelwithin multiple such round-robin selection elements. Each round-robinselection element is operable with respect to master devices coupledthereto all having the same corresponding priority level. Element 220 isfirst operable to identify the nearest next master device presentlyrequesting access to the shared resource at the corresponding prioritylevel. The previously saved (registered) requesting master ID is used indetermining the nearest next master device. For example, if four masterdevices (A, B, C and D) have corresponding device ID's 0, 1, 2 and 3,the next nearest master device is determined as the next higher deviceID requesting the shared resource relative to the device ID of themaster device previously registered. Such a computation is preferablyperformed using modulo arithmetic to wrap from ID 3 back to ID 0. Thefollowing table is suggestive of one exemplary preferred round-robinsequence that determines the next nearest master ID given a previouslyregistered (presently active) master device ID.

Request Request Request Request from from from from Present ID Device ADevice B Device C Device D Next ID (index_x) (ID 0) (ID 1) (ID 2) (ID 3)(nearest_x) 00 n/a 1 n/a n/a 01 00 n/a 0 1 n/a 10 00 n/a 0 0 1 11 00 n/a0 0 0 00 01 n/a n/a 1 n/a 10 01 n/a n/a 0 1 11 01 1 n/a 0 0 00 01 0 n/a0 0 01 10 n/a n/a n/a 1 11 10 1 n/a n/a 0 00 10 0 1 n/a 0 01 10 0 0 n/a0 10 11 1 n/a n/a n/a 00 11 0 1 n/a n/a 01 11 0 0 1 n/a 10 11 0 0 0 n/a11

Those skilled in the art will readily recognize that such a tablestructure may be easily adapted to any number of master devices. A tableindicating four such master devices is therefore merely intended asexemplary of one typical embodiment of the present convention. Further,those of ordinary skill in the art will readily recognize that the nextnearest ID may be determined either by simple computation or byreference to a lookup table such as the table presented above. Such alookup table may, for example, be stored in a memory associated with theround-robin arbitration selection element.

Referring again to FIG. 2, following selection of a next nearest masterdevice by element 220, element 222 is operable to apply a selectedmaster device ID as the presently requesting master device at thepriority level corresponding to the round-robin arbitration selectionelement in which the method is presently operable. Element 222 continuesto assert the selected master device as the requesting master device atthe corresponding priority level until the round-robin sequence isinterrupted as noted above and as indicated by the dashed line enteringelement 220. When so interrupted, processing of element 222 isterminated and processing jumps back to element 220 to select a nextnearest master device in the round-robin sequence.

Elements 210 through 214 are operable to update the round-robinarbitration selection process in response to a signal from the priorityarbitration selection element indicating a new transaction is to beselected at the priority level corresponding to the round-robinarbitration selection element in which the method is operating. Element210 is first operable to determine whether the priority levelcorresponding to the round-robin selection element operating the methodis the presently selected “highest” priority level. If not, processingcontinues looping on element 210. Element 212 is operable to check forreceipt of a signal from the priority arbitration selection elementindicating that a new round-robin selection sequence should becommenced. Upon receipt of such a signal, processing continues withelement 214. If elements 210 and 212 thus jointly determine that a newtransaction has been sensed and that the priority level corresponding tothis round-robin selection process is presently granted as the highestpriority level, element 214 is then operable to register (save) thepresently selected master device ID and to signal the round-robinselection process element 220 that a new nearest master device ID shouldbe selected in the round-robin process. Such a signal is indicated bythe dashed line exiting element 214. Processing then continues bylooping back to element 210 to await the sensing of a new transaction atthe priority level associated with this round-robin arbitrationselection element processing.

Those skilled in the art will recognize that the flowchart of FIG. 2 isintended as a broad functional description of methods of the presentinvention operable within an improved fairness arbiter. Numerousequivalent techniques will be readily apparent to those of ordinaryskill in the art to provide similar fairness by improving equity ofallocation of a shared resource among a plurality of master devices atthe same priority level using round-robin arbitration techniques withinthe priority level.

FIG. 3 is a block diagram of a structure for implementing the improvedfairness features of the present inventions. FIG. 3 depicts an arbiterstructure 300 providing multiple master devices coupled to each of tworound-robin arbitration selection elements 302 and 312. The outputsignal generated by each round-robin arbitration selection element 302and 312 is applied to a multiplexer 330 for selection in accordance withoutput signals generated by a priority arbitration selection element322.

Priority arbitration selection element 322 preferably includes an ORgate for each priority level supported by the priority arbitrationselection element 322. OR gate 324 receives an input signal from eachmaster device associated with level 1 priority of the depicted system.Likewise, OR gate 326 receives an input from each master deviceassociated with priority level 2 of the depicted system. The inputsignals to each OR gate 324 and 326 indicate a request at a givenpriority level by the corresponding master device for access to theshared resource managed by the arbiter 300. The output signal of each ORgate indicates that at least one master device at the correspondingpriority level is requesting access to the shared resource. Inparticular, path 374 receives the output signal of OR gate 324indicating some device at priority level 1 is requesting access to theshared resource. In like manner, path 376 receives the output of OR gate326 indicating that some device at priority level 2 is requesting accessto the shared resource. Priority encoder 328 within priority arbitrationselection 322 then receives the signals on paths 374 and 376 to generatean encoded signal for application to multiplexer 330 via paths 381 and382. In particular, the signal on path 381 indicates that level 1 is tobe selected as the present highest priority and the signal applied topath 382 indicates that level 2 is to be selected as the present highestpriority.

The output signals applied to path 381 and path 382 by priorityarbitration selection element 322 serve as select signals formultiplexer 330 to select the present output of round-robin arbitrationselection element 302 when level 1 is the present highest priority or toselect the output of round-robin arbitration selection element 312 whenlevel 2 is the present highest priority. The input signals so selectedby multiplexer 330 are, in turn, applied to output path 350 for furtherprocessing within the arbiter system.

Round-robin selection element and 312 and 302 are essentially identicalin structure but operate on input signals corresponding to differentrequesting master devices at different priority levels. In particular,round-robin arbitration selection element 302 operates to select a nextmaster device at priority level 1 and element 312 selects a next masterdevice at priority level 2. Element 302 includes nearest functiondetermination element 304 to determine the next nearest master device IDin the round-robin sequence. Nearest function element 304 receivesrequest signals from each of the master devices coupled thereto asindicated by signal paths ID_A(00) through ID_D(11) at level 1. Nearestfunction element 304 also receives the present selection previouslyregistered in register 306 and applied to nearest function element 304via path 352. The output of nearest function element 304 is continuouslyapplied to path 354 as an input to multiplexer 330 as discussed aboveand indicates the present selection at priority level 1 from thecorresponding round-robin selection element 302.

The output of nearest function element 304 on path 354 is also appliedto register 306 as an input value to be saved when so enabled by asignal on path 356. The signal generated on path 356 as the output ofAND gate 308. AND gate 308 receives an input signal from the path 381 ofthe priority arbitration selection element 322 indicating that level 1(the level corresponding to round-robin arbitration selection element302) is presently selected as the highest priority. The second input toAND gate 308 is a signal indicating that a new transaction has beendetected as indicated on the REQ. signal path 380. A new transaction orrequest is detected when any master device associated with the system ofthe present invention first asserts a new request for access to theshared resource. In one exemplary embodiment, the outputs of OR gate 324and OR gate 326 on paths 374 and 376, respectively, are applied asinputs to OR gate 378. The ORd output signal is applied to path 380 toindicate that some master device has requested access to the sharedresource at any of the priority levels. Applying this REQ signal on path380 to the second input of AND gate 308 precludes changes in thearbitration logic except when a new transaction (request) is asserted byat least one of the master devices.

Register 306 within round-robin arbitration selection element 302therefore serves as a memory element for storing a previous state ofoperation within the round-robin arbitration selection element 302.Saving such state information permits the round-robin arbitrationselection element 302 to continue round-robin sequencing where itpreviously left off rather than restarting the round-robin sequence eachtime a new priority is selected or a new transaction is sensed. Thisaspect of the present invention enables the improved fairness inround-robin arbitration sequencing within a priority level. Thoseskilled in the art will readily recognize that register 306 may beimplemented as any number of memory devices, including, for example, oneor more “D flip-flops.” Further those skilled in the art will recognizethat an appropriate clock signal (not shown) is applied to such aflip-flop to synchronize the loading of a value therein with anappropriate system clock. These and other design choices in implementingthe memory element 306 will be readily apparent to those of ordinaryskill in the art.

Round-robin arbitration selection element 312 is identical in structureto that of element 302 but receives input signals corresponding tomaster devices associated with level 2 priority of the system. As abovewith respect to element 302, round-robin arbitration selection element312 includes nearest function element 314 that receives request signalsfrom a plurality of master devices associated with level 2 of the system(ID_A(00) through ID_D(11) at level 2). Nearest function element 314also receives the previously registered (saved) master ID value fromregister 316. The nearest function element 314 generates its next masterID in the round-robin sequence and applies an appropriate output signalto path 364 for input to multiplexer 330 and for input to register 316.Register 316 is enabled to load a new master ID value in response to anoutput signal generated by AND gate 318 on path 366. AND gate 318receives a first input signal from path 382 indicating that level 2 isthe presently selected highest priority level and a second input fromREQ. on path 380 indicating that a new transaction has been sensed asdiscussed above.

Those of ordinary skill in the art will readily recognized that thestructure of FIG. 3 is intended merely as representative of oneexemplary preferred embodiment of the present invention. Those ofordinary skill in the art will readily understand numerous equivalentstructures. In particular, those of ordinary skill in the art willreadily recognize that any number of master devices may be associatedwith the round-robin selection element corresponding to a particularpriority level. Further, any number of priority levels may be defined ina given system and incorporated into the structure with an associatedround-robin selection element coupled to the priority selectionstructures.

Further, those skilled in the art will recognize a variety of alternatestructures for providing round-robin or other arbitration sequences.Features of the present invention provide for a state memory to enablecontinuing a sequence of arbitration selections within a particularpriority level. This provides improved fairness by helping ensureequality in selection of requesting master devices among a plurality ofdevices at the same priority level.

While the invention has been illustrated and described in the drawingsand foregoing description, such illustration and description is to beconsidered as exemplary and not restrictive in character, it beingunderstood that only the preferred embodiment and minor variants thereofhave been shown and described and that all changes and modificationsthat come within the spirit of the invention are desired to beprotected.

1. In a system having multiple master devices coupled to a shared bus, abus arbitration method comprising the steps of: saving state informationregarding round-robin arbitration among master devices all having afirst priority level; interrupting round-robin arbitration when a masterdevice having a higher priority level requests said shared bus; andresuming round-robin arbitration among said master devices at said firstpriority level using said state information.
 2. The method of claim 1wherein the step of saving comprises the step of: registering a nearestmaster device ID corresponding to the next master device requesting saidshared bus at said first priority level.
 3. The method of claim 1wherein the step of saving comprises the step of: saving an indexindicative of the next master device requesting said shared bus at saidfirst priority level.
 4. The method of claim 2 wherein the step ofresuming comprises the step of: granting said shared bus to the nextmaster device identified by said nearest master device ID.
 5. The methodof claim 3 wherein the step of resuming comprises the step of: grantingsaid shared bus to the next master device identified by said nearestmaster device ID.
 6. A bus arbitration circuit comprising: a pluralityof round-robin arbitration selection elements for selecting a nextrequesting master device among a plurality of master devices coupled toeach round-robin arbitration selection element wherein each round-robinarbitration selection element includes: a state memory indicating thelast master device selected by said selection element; and a nearestfunction element coupled to said state memory for determining said nextrequesting master device as a function of said last master device; and apriority arbitration selection element coupled to said plurality ofround-robin arbitration selection elements for selecting the highestpriority master device among the selected requesting master devicesselected by each of said plurality of round-robin arbitration selectionelements.
 7. The circuit of claim 6 wherein said state memory comprisesa register.
 8. The circuit of claim 6 wherein said nearest functionelement comprises a lookup table indexed by said last master device tolocate said next requesting master device in said lookup table.
 9. In asystem having multiple master devices coupled to a shared bus, a busarbitration apparatus comprising: means for saving state informationregarding round-robin arbitration among master devices all having afirst priority level; means for interrupting round-robin arbitrationwhen a master device having a higher priority level requests said sharedbus; and means for resuming round-robin arbitration among said masterdevices at said first priority level using said state information. 10.The system of claim 9 wherein the means for saving comprises: means forregistering a nearest master device ID corresponding to the next masterdevice requesting said shared bus at said first priority level.
 11. Thesystem of claim 9 wherein the means for saving comprises: means forsaving an index indicative of the next master device requesting saidshared bus at said first priority level.
 12. The system of claim 10wherein the means for resuming comprises: means for granting said sharedbus to the next master device identified by said nearest master deviceID.
 13. The method of claim 11 wherein the means for resuming comprises:means for granting said shared bus to the next master device identifiedby said nearest master device ID.